package com.wbl.train.business.service;

import com.wbl.train.common.business.dto.DailyTrainTicketDto;
import com.wbl.train.common.business.entity.DailyTrainEntity;
import com.wbl.train.common.business.entity.DailyTrainTicketEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wbl.train.common.page.PageVo;

import java.time.LocalDate;
import java.util.Date;

/**
 * 余票信息 服务类
 * @author 王博纶
 * @since 2024-02-15
 */
public interface DailyTrainTicketService extends IService<DailyTrainTicketEntity> {

    /**
     * 查询火车车站的信息
     * @param dailyTrainTicketDto 火车余票DTO
     * @return 分页信息
     */
    PageVo<DailyTrainTicketEntity> queryTrainTicket(DailyTrainTicketDto dailyTrainTicketDto);

    /**
     * 新增火车车站
     * @param dailyTrainTicket 火车余票
     * @return 是否新增成功
     */
    boolean insertAndUpdateTrain(DailyTrainTicketEntity dailyTrainTicket);

    /**
     * 根据唯一键查询 trainTicket 火车余票
     * @param date 当日日期
     * @param trainCode 火车车次编号
     * @param start 火车起始站
     * @param end 火车结束站
     * @return trainTicket 火车余票
     */
    DailyTrainTicketEntity getTrainTicketByUniqueKey(LocalDate date, String trainCode,String start,String end);

    /**
     * 生成每日余票信息
     * @param dailyTrainEntity 当前车次的信息
     * @param date 要生成的日期
     * @param trainCode 火车车次编码
     * @param now 当前时间
     */
    void genTrainTicket(DailyTrainEntity dailyTrainEntity,LocalDate date, String trainCode, Date now);

}
